package com.qumitech.visualnovel.service.channel;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.qumitech.visualnovel.model.dao.console.*;
import com.qumitech.visualnovel.model.dao.channel.*;
import com.qumitech.visualnovel.pubdef.dto.asa.asaDTO;

import java.util.HashMap;
import java.util.List;

/**
 * Created by Edison.hu on 18/9/20.
 */
public interface ChannelDataService {

    List<ChannelData> ChannelDataList(String startTime,String endTime,String channel,String appId,int offset, int pageSize,String orderType,String orderBy,Integer channelType);

    List<HashMap<String,Object>> getChannelOptions();

    int ChannelDataListCount(String startTime,String endTime,String channel,String appId,Integer channelType);

    JSONArray ChannelDataStatistic(String startTime, String endTime, String channel, String appId, Integer channelType);

    List<ChannelDiamondDataDO> ChannelDiamondList(String startTime,String endTime,List<String> channel, int offset, int pageSize,String orderType,String orderBy);

    int ChannelDiamondCount(String startTime,String endTime,List<String> channel);

    List<ChannelRechargeDataDO> ChannelRechargeList(String startTime, String endTime, List<String> channel, int offset, int pageSize, String orderType, String orderBy);

    int ChannelRechargeCount(String startTime,String endTime,List<String> channel);

    int ChannelJoyCoinsCount(String startTime,String endTime,List<String> channel);

    List<ChannelJoyCoinsDataDO> ChannelJoyCoinsList(String startTime,String endTime,List<String> channel, int offset, int pageSize,String orderType,String orderBy);

    JSONObject LaunchDataList(String startTime, String endTime, String channel, String appId, int offset, int pageSize, String orderType, String orderBy, Integer channelType, Integer filter);

    int LaunchDataListCount(String startTime,String endTime,String channel,String appId,Integer channelType, Integer filter);

    List<LaunchChannelData> LaunchChannelList(String startTime, String endTime, String channel, Integer status, int offset, int pageSize, String orderType, String orderBy);

    int LaunchChannelListCount(String startTime,String endTime,String channel, Integer status);

    List<String> listConsumeROIReference();

    int addLaunchChannel(String channel);

    void updateLaunchChannelStatus(String channel);

    List<LaunchExpense> LaunchExpenseList(String startTime, String endTime, String channel, int offset, int limit, String orderBy, String orderType);

    int LaunchExpenseListCount(String startTime, String endTime, String channel);

    void updateLaunchExpense(List<LaunchExpense> launchExpenses);

    List<asaDTO> asaDataList(String keywordId, String keywordName, String startTime, String endTime, Integer filter, String orderType, String orderBy, int offset, int limit);

    int asaDataListCount(String keywordId, String keywordName, String startTime, String endTime, Integer filter);

    List<asaDTO> asaDataListListSum(String keywordId, String keywordName, String startTime, String endTime, Integer filter);

}
